﻿using MediatR;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;

namespace S.PurchaseAndSales.Api.Application.Command.SheepSaleCommand
{
    public class SaleSheepUpdateCheckStateCommand:IRequest<bool>
    {
        public int SheepSaleId { get; set; }

        /// <summary>
        /// 羊只档案Id(联合查询需要)
        /// </summary>
        public int? SheepFileId { get; set; }

        /// <summary>
        /// 电子耳标Id
        /// </summary>
        public int? MarkId { get; set; }

        /// <summary>
        /// 电子耳标
        /// </summary>
        [MaxLength(50)]
        public string? EarTag { get; set; }


        /// <summary>
        /// 销售日期
        /// </summary>
        public DateTime? SaleDate { get; set; }


        /// <summary>
        /// 成交价(元)
        /// </summary>
        [Column(TypeName = "decimal(10,2)")]
        public decimal? ClosingPrice { get; set; }

        /// <summary>
        ///定价(元)
        /// </summary>
        [Column(TypeName = "decimal(10,2)")]
        public decimal? FixPrice { get; set; }


        /// <summary>
        /// 折扣比例
        /// </summary>
        [Column(TypeName = "decimal(10,2)")]
        public decimal? DiscountRatio { get; set; }


        /// <summary>
        /// 等级
        /// </summary>
        public int? Grade { get; set; }

        /// <summary>
        ///品级
        /// </summary>
        public int? OfficialRank { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        public int? Sex { get; set; }


        /// <summary>
        /// 羊只类型
        /// </summary>
        public int? SheepType { get; set; }


        /// <summary>
        /// 繁殖状态
        /// </summary>
        public int? ReproductiveState { get; set; }

        /// <summary>
        /// 栋舍名称
        /// </summary>
        [MaxLength(50)]
        public string? BuildingName { get; set; }

        /// <summary>
        /// 栏位名称
        /// </summary>
        [MaxLength(50)]
        public string? ColumnName { get; set; }

        /// <summary>
        /// 出生日期
        /// </summary>
        public DateTime? BirthDate { get; set; }


        /// <summary>
        /// 出生重(kg)
        /// </summary>
        [Column(TypeName = "decimal(10,2)")]
        public decimal? BirthWeight { get; set; }


        /// <summary>
        /// 断奶重(kg)
        /// </summary>
        [Column(TypeName = "decimal(10,2)")]
        public decimal? WeaningWeight { get; set; }


        /// <summary>
        /// 父号
        /// </summary>
        [MaxLength(50)]
        public string? ParentEITag { get; set; }

        /// <summary>
        /// 母号
        /// </summary>
        [MaxLength(50)]
        public string? MotherEITag { get; set; }

        /// <summary>
        /// 月龄
        /// </summary>
        public int? MonthsAge { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        [MaxLength(50)]
        public string? CreateBy { get; set; }

        /// <summary>
        /// 创建时间（采购日期）
        /// </summary>
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        [MaxLength(50)]
        public string? UpdateBy { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? UpdateDate { get; set; }
        /// <summary>
        /// 客户Id
        /// </summary>
        public int? CustomerInformationId { get; set; }
        /// <summary>
        /// 部门Id
        /// </summary>
        public int? DocId { get; set; }
        /// <summary>
        /// 销售员Id
        /// </summary>
        public int? SaleId { get; set; }
        /// <summary>
        /// 仓库Id
        /// </summary>
        public int? WorkShopId { get; set; }
        /// <summary>
        /// 收货地址
        /// </summary>
        public string? Address { get; set; }
        /// <summary>
        /// 单据号
        /// </summary>
        public string? DocNumber { get; set; }
        /// <summary>
        /// 审核状态
        /// </summary>
        public int? CheckState { get; set; }
        /// <summary>
        /// 审核人
        /// </summary>
        public string? CheckPeople { get; set; }
        /// <summary>
        /// 审核日期
        /// </summary>
        public DateTime? CheckDate { get; set; }
        /// <summary>
        /// 财务审核人
        /// </summary>
        public string? MoneyCheckPeople { get; set; }
        /// <summary>
        /// 财务审核时间
        /// </summary>
        public DateTime? MoneyCheckDate { get; set; }
        /// <summary>
        /// 仓库审核人
        /// </summary>
        public string? WorkShopCheckPeople { get; set; }
        /// <summary>
        /// 仓库审核日期
        /// </summary>
        public DateTime? WorkShopCheckDate { get; set; }
    }
}
